package com.gadgets.busi.bm02.dto;

import com.gadgets.framework.common.dto.BaseDTO;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author UncleXiu
 * @version V1.0.0
 * @data 2020-12-31
 * 
 */
public class SumDemendsResultDTO extends BaseDTO {

    /**
     * 原始材料需求
     */
    private HashMap<String, Integer> oriMaterialMap = new HashMap<>();
    /**
     * 合成递归表
     */
    private List<RecipeResultDTO> recipeResultDTO = new ArrayList<>();

    public List<RecipeResultDTO> getRecipeResultDTO() {
        return recipeResultDTO;
    }

    public void setRecipeResultDTO(List<RecipeResultDTO> recipeResultDTO) {
        this.recipeResultDTO = recipeResultDTO;
    }

    public HashMap<String, Integer> getOriMaterialMap() {
        return oriMaterialMap;
    }

    public void setOriMaterialMap(HashMap<String, Integer> oriMaterialMap) {
        this.oriMaterialMap = oriMaterialMap;
    }

    /**
     * 增加原始材料需求
     * @param resultDTO 物品子需求
     */
    public void addOriMap(DemendsResultDTO resultDTO){
        if(null!=resultDTO){
            // 新增原始原料需求表
            HashMap<String,Integer> itemOriMap = resultDTO.getOriMaterialMap();
            for (Map.Entry<String, Integer> entry : itemOriMap.entrySet()) {
                if(!oriMaterialMap.containsKey(entry.getKey())){
                    oriMaterialMap.put(entry.getKey(),0);
                }
                oriMaterialMap.put(entry.getKey(), oriMaterialMap.get(entry.getKey())+entry.getValue());
            }
            // 新增合成表
            recipeResultDTO.add(resultDTO.getRecipeResultDTO());
        }
    }

}
